Ansible import_role, include_role, import_tasks, include_role
import* ステートメントはすべて、Playbook の解析時に事前処理される(静的処理)
include* ステートメントはすべて、Playbook の実行中に発生する際に処理される(動的処理)
import_tasks
再利用するタスクはタスクファイルに分割し、import_tasksで読み込む
こんな風にタスクを分割する。タスクが大きくなってきたらRoleに分割する
code:memo.yml
- import_tasks: ../tasks/httpd_install.yml
- import_tasks: ../tasks/httpd_config.yml
- import_tasks: ../tasks/httpd_service.yml
- import_tasks: ../tasks/httpd_contents.yml
code:roles/example/tasks/main.yml
# roles/example/tasks/main.yml
- name: added in 2.4, previously you used 'include'
import_tasks: redhat.yml
#
- import_tasks: debian.yml
# macOSの場合
- import_tasks: macOS.yml
- import_tasks: ubuntu.yml
# roles/example/tasks/redhat.yml
- yum:
name: "httpd"
state: present
# roles/example/tasks/debian.yml
- apt:
name: "apache2"
state: present
include_tasks
import_role
code:memo
関連
参考
includeとimport
メモ